iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
Mobile Development

[Android] 在 activity 與 fragment 身上的 lifecycle系列 第 13

[Day 13] Activity 的 lifecycle - 用圖像來協助記憶生命週期

  • 分享至 

  • xImage
  •  

為了在各個生命週期階段轉換,Activity class 提供一組核心方法、共6個回調方式:onCreate()onStart()onResume()onPause()onStop()onDestroy()

我們先來看一個自然界的例子。蝴蝶的生命週期可以大致用下列階段來描述:

  1. 蟲卵
  2. 毛毛蟲
  3. 蛹化
  4. 成為蝴蝶
  5. 死亡

這涵蓋了蝴蝶生命的起始與終結。
https://ithelp.ithome.com.tw/upload/images/20220919/20151956JNbZOdLU4o.png
[圖1] 蝴蝶的生命週期

讓我們再回到 Activity 的生命週期。它的生命週期從初始化(Initialized)出發,結束於銷毀(Destroyed)。

https://ithelp.ithome.com.tw/upload/images/20220919/201519563ZcwQUipYY.png
[圖2] Activity 的生命週期

要如何記憶 Activity 的生命週期?

筆者認為可以從以下幾點出發:

  • 先把6個回調方法:onCreate()onStart()onResume()onPause()onStop()onDestroy()硬背一下。背完後容易忘記是正常的,藉此先有個初步印象。
  • 從回調方法名稱的文義,去建立哪個是起點、哪個是終點的流程概念:建立、開始、恢復、暫停、停止、銷毀。
  • 如果你已經實作過 Android 應用程式,試著從應用程式畫面的可互動性、畫面在不在前景的差異,來回想生命週期階段的差異。
  • 如果你還沒實作過,可以先觀看底下參考資料的 Udacity 免費課程影片:Developing Android Apps with Kotlin - Activity & Fragment Lifecycle。來從影片中看到畫面可互動性在不同生命週期階段的差異。如果懶得看影片,可先從 圖2 來觀察,Activity 在什麼階段處於被關注(focus)、可見(visible)。
  • 最後,再去掌握每個生命週期階段要負責的任務。這樣應該會比較容易記憶起來。

參考資料


上一篇
[Day 12] Activity 的 lifecycle - 可以避免應用程式發生這些崩潰體驗
下一篇
[Day 14] Activity 的 lifecycle - 生命週期作用為何?
系列文
[Android] 在 activity 與 fragment 身上的 lifecycle30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言